home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Makefiles / app / tool.make < prev   
Text File  |  1995-02-14  |  8KB  |  236 lines

  1. #
  2. #                                  tool.make
  3. #
  4.  
  5. PRODUCT = $(PRODUCT_ROOT)/$(NAME)
  6.  
  7. $(PRODUCT_ROOT):
  8.     @$(MKDIRS) $(PRODUCT_ROOT)
  9.     
  10. APP_MAKEFILE_DIR = /NextDeveloper/Makefiles/app
  11. include $(APP_MAKEFILE_DIR)/common.make
  12.  
  13.  
  14. all:: tool
  15.  
  16. app:: tool
  17.  
  18. tool::
  19.     @($(MKDIRS) $(SYMROOT) ; \
  20.      $(process_target_archs)_obj ; \
  21.     $(set_bundle_ext) ; \
  22.     if [ "$(ENGLISH)" = "YES" -o "$(JAPANESE)" != "YES" ] ; then \
  23.         language_cflags="" ; \
  24.         libs="$(LIBS)" ; \
  25.         other_libs="$(OTHER_LIBS)" ; \
  26.     else \
  27.         language_cflags="-DKANJI" ; \
  28.         libs="$(LIBS:lNeXT_s=lNeXTJ_s)" ; \
  29.         other_libs="$(OTHER_LIBS:lNeXT_s=lNeXTJ_s)" ; \
  30.     fi ; \
  31.     $(MAKE) project \
  32.         "PRODUCT_ROOT = $(SYMROOT)" \
  33.         "PRODUCT = $(SYMROOT)/$(NAME)" \
  34.         "OFILE_DIR = $(OBJROOT)/$$obj_dir" \
  35.         "PROJ_CFLAGS = $(NORMAL_CFLAGS) $$language_cflags" \
  36.         "LIBS = $$libs" \
  37.         "OTHER_LIBS = $$other_libs" \
  38.         "APP_MAKEFILE_DIR = $(APP_MAKEFILE_DIR)" \
  39.         "BUNDLE_EXTENSION = $$bundle_ext" \
  40.         "DEVROOT = $(DEVROOT)" \
  41.         "RC_CFLAGS = $$arch_cflags" \
  42.         "RC_ARCHS = $$archs" \
  43.         "SRCROOT = $(SRCROOT)" \
  44.         "DSTROOT = $(DSTROOT)" \
  45.         "OBJROOT = $(OBJROOT)" \
  46.         "SYMROOT = $(SYMROOT)/sym" \
  47.         "SYM_DIR = $(SYMROOT)/sym" )
  48.  
  49. debug::
  50.     @($(MKDIRS) $(SYMROOT) ; \
  51.      $(process_target_archs)_debug_obj ; \
  52.     $(set_bundle_ext) ; \
  53.     if [ "$(ENGLISH)" = "YES" -o "$(JAPANESE)" != "YES" ] ; then \
  54.         language_cflags="" ; \
  55.         libs="$(DEBUG_LIBS)" ; \
  56.         other_libs="$(OTHER_DEBUG_LIBS)" ; \
  57.         other_japanese_libs="" ; \
  58.     else \
  59.         language_cflags="-DKANJI" ; \
  60.         libs="$(DEBUG_LIBS:lNeXT_s=lNeXTJ_s)" ; \
  61.         other_libs="$(OTHER_DEBUG_LIBS:lNeXT_s=lNeXTJ_s)" ; \
  62.         other_japanese_libs="$(OTHER_JAPANESE_DEBUG_LIBS)" ; \
  63.     fi ; \
  64.     $(MAKE) project \
  65.         "PRODUCT_ROOT = $(SYMROOT)" \
  66.         "PRODUCT = $(SYMROOT)/$(NAME)" \
  67.         "OFILE_DIR = $(OBJROOT)/$$obj_dir" \
  68.         "PROJ_CFLAGS = $(DEBUG_CFLAGS) $$language_cflags" \
  69.         "LIBS = $$libs" "OTHER_LIBS = $$other_libs" \
  70.         "OTHER_JAPANESE_LIBS = $$other_japanese_libs" \
  71.         "APP_MAKEFILE_DIR = $(APP_MAKEFILE_DIR)" \
  72.         "BUNDLE_EXTENSION = $$bundle_ext" \
  73.         "DEVROOT = $(DEVROOT)" \
  74.         "RC_CFLAGS = $$arch_cflags" \
  75.         "RC_ARCHS = $$archs" \
  76.         "SRCROOT = $(SRCROOT)" \
  77.         "DSTROOT = $(DSTROOT)" \
  78.         "OBJROOT = $(OBJROOT)" \
  79.         "SYMROOT = $(SYMROOT)/sym" \
  80.         "SYM_DIR = $(SYMROOT)/sym" )
  81.  
  82. profile::
  83.     @($(MKDIRS) $(SYMROOT) ; \
  84.      $(process_target_archs)_profile_obj ; \
  85.     $(set_bundle_ext) ; \
  86.     if [ "$(ENGLISH)" = "YES" -o "$(JAPANESE)" != "YES" ] ; then \
  87.         language_cflags="" ; \
  88.         libs="$(PROF_LIBS)" ; \
  89.         other_libs="$(OTHER_PROF_LIBS)" ; \
  90.         other_japanese_libs="" ; \
  91.     else \
  92.         language_cflags="-DKANJI" ; \
  93.         libs="$(PROF_LIBS:lNeXT_s=lNeXTJ_s)" ; \
  94.         other_libs="$(OTHER_PROF_LIBS:lNeXT_s=lNeXTJ_s)" ; \
  95.         other_japanese_libs="$(OTHER_JAPANESE_PROF_LIBS)" ; \
  96.     fi ; \
  97.     $(MAKE) project \
  98.         "PRODUCT_ROOT = $(SYMROOT)" \
  99.         "PRODUCT = $(SYMROOT)/$(NAME)" \
  100.         "OFILE_DIR = $(OBJROOT)/$$obj_dir" \
  101.         "PROJ_CFLAGS = $(PROFILE_CFLAGS) $$language_cflags" \
  102.         "LIBS = $$libs" "OTHER_LIBS = $$other_libs" \
  103.         "OTHER_JAPANESE_LIBS = $$other_japanese_libs" \
  104.         "APP_MAKEFILE_DIR = $(APP_MAKEFILE_DIR)" \
  105.         "BUNDLE_EXTENSION = $$bundle_ext" \
  106.         "DEVROOT = $(DEVROOT)" \
  107.         "RC_CFLAGS = $$arch_cflags" \
  108.         "RC_ARCHS = $$archs" \
  109.         "SRCROOT = $(SRCROOT)" \
  110.         "DSTROOT = $(DSTROOT)" \
  111.         "OBJROOT = $(OBJROOT)" \
  112.         "SYMROOT = $(SYMROOT)/sym" \
  113.         "SYM_DIR = $(SYMROOT)/sym" )
  114.  
  115.  
  116.  
  117. depend:: Makefile.dependencies $(SUBPROJECTS:.subproj=.depend) # Note: tools can not have bundles.
  118.  
  119. project::  $(INITIAL_TARGETS) toplevel_subcomponents resources $(PRODUCT)
  120.  
  121. # Tools can have no bundles; there's no ".tool" wrapper to store it in 
  122. toplevel_subcomponents:: $(PRODUCT_ROOT) subprojs # bundles
  123.     -@($(RM) -f $(PRODUCT_ROOT)/$(CHANGES_FILE) ; \
  124.     $(ECHO) "$(OFILE_DIR)" > $(PRODUCT_ROOT)/$(CHANGES_FILE))
  125.  
  126. $(PRODUCT): $(PRODUCT_DEPENDS) $(OTHER_PRODUCT_DEPENDS)
  127.     @(adaptors="" ; \
  128.     for adaptor in $(OTHERRELOCATABLES) none ; do \
  129.         if [ $$adaptor = "none" ] ; then break; fi ; \
  130.         for path in $(ADAPTOR_SEARCH_PATH) none ; do \
  131.             if [ $$path = "none" ] ; then break; fi ;\
  132.             if [ -r $$path/$$adaptor ] ; then \
  133.             adaptors="$$adaptors $$path/$$adaptor" ; \
  134.             break ; \
  135.         fi ; \
  136.         done ; \
  137.     done ; \
  138.     if [ "`$(ECHO) $(OFILES) $(OTHER_OFILES) | wc -w`" != "       0" ] ; then \
  139.         if [ "$(ENGLISH)" = "YES" -o "$(JAPANESE)" != "YES" ] ; then \
  140.             other_japanese_libs=""; \
  141.         else \
  142.             other_japanese_libs="$(OTHER_JAPANESE_LIBS)" ; \
  143.         fi ; \
  144.         cmd="$(CC) $(ALL_CFLAGS) $(OBJCFLAG) $(ALL_LDFLAGS) \
  145.                -o $(PRODUCT) $(OFILES) $(OTHER_OFILES) \
  146.            $$adaptors $$other_japanese_libs $(OTHER_LIBS) $(LIBS)";\
  147.         echo $$cmd ; \
  148.         $$cmd ; \
  149.         fi    )
  150.     
  151.  
  152. $(DSTROOT)$(INSTALLDIR):
  153.     $(MKDIRS) $(DSTROOT)$(INSTALLDIR)
  154.  
  155. strip_myself::
  156.     $(STRIP) $(TOOL_STRIP_OPTS) $(DSTROOT)/$(PARENT_DIR)/$(NAME)
  157.  
  158. before_install:: $(DSTROOT)$(INSTALLDIR)
  159.     $(RM) -rf $(DSTROOT)$(INSTALLDIR)/$(NAME)
  160.  
  161. after_install::
  162.  
  163. install:: tool before_install installhdrs $(OTHER_INSTALL_DEPENDS)
  164.     (cd $(SYMROOT); $(TAR) chf - $(NAME)) | (cd $(DSTROOT)$(INSTALLDIR); $(TAR) xf -)
  165.     $(STRIP) $(TOOL_STRIP_OPTS) $(DSTROOT)$(INSTALLDIR)/$(NAME) 
  166.     -$(CHOWN) -Rf $(INSTALL_AS_USER).$(INSTALL_AS_GROUP) \
  167.         $(DSTROOT)$(INSTALLDIR)/$(NAME)
  168.     -$(CHMOD) -Rf go-w $(DSTROOT)$(INSTALLDIR)/$(NAME)
  169.     @(if [ "$(INSTALL_PERMISSIONS)" != "" ] ; then \
  170.         $(ECHO) $(CHMOD) -f $(INSTALL_PERMISSIONS) \
  171.             $(DSTROOT)$(INSTALLDIR)/$(NAME); \
  172.         $(CHMOD) -f $(INSTALL_PERMISSIONS) \
  173.             $(DSTROOT)$(INSTALLDIR)/$(NAME); \
  174.     fi)
  175.     @($(process_target_archs)_obj ; \
  176.     if [ "$(ENGLISH)" = "YES" -o "$(JAPANESE)" != "YES" ] ; then \
  177.         language_cflags="" ; \
  178.     else \
  179.         language_cflags="-DKANJI" ; \
  180.     fi ; \
  181.     $(MAKE) after_install     "DSTROOT=$(DSTROOT)" \
  182.                        "OBJROOT=$(OBJROOT)" \
  183.                 "SYMROOT = $(SYMROOT)/sym" \
  184.                 "SYM_DIR = $(SYMROOT)/sym" \
  185.                 "DEVROOT = $(DEVROOT)" \
  186.                 "PRODUCT_ROOT = $(PRODUCT_ROOT)" \
  187.                 "PRODUCT = $(PRODUCT_ROOT)/$(NAME)" \
  188.                 "OFILE_DIR = $(OBJROOT)/$$obj_dir" \
  189.                 "PROJ_CFLAGS = $(NORMAL_CFLAGS) $$language_cflags" \
  190.                 "APP_MAKEFILE_DIR = $(APP_MAKEFILE_DIR)" \
  191.                 "RC_CFLAGS = $$arch_cflags" \
  192.                 "RC_ARCHS = $$archs" )
  193.  
  194.                 
  195.  
  196. #.DEFAULT 
  197.  
  198. help:
  199.     @if (test "$<"); then        \
  200.         $(ECHO) 'ERROR: Unrecognized Makefile target "$<"';    \
  201.     fi
  202.     @$(ECHO) 'The following targets are available:'
  203.     @$(ECHO) 
  204.     @$(ECHO) ' all         Makes the tool target (below).  This is the default target.'
  205.     @$(ECHO) 
  206.     @$(ECHO) ' tool        Compiles and links an optimized (and debuggable) version of the'
  207.     @$(ECHO) '             project, ready to install, into <ProjectName>.'
  208.     @$(ECHO)      
  209.     @$(ECHO) ' debug       Compiles (with all warnings and -DDEBUG on) and links a '
  210.     @$(ECHO) '             fully-debuggable version of the project into a <ProjectName>_d.' 
  211.     @$(ECHO) 
  212.     @$(ECHO) ' profile     Compiles (with all warnings and -DPROFILE on) and links a'
  213.     @$(ECHO) '             version of the project into <ProjectName>_p'
  214.     @$(ECHO) '             that will, when run, generate a gprof report.'
  215.     @$(ECHO) 
  216.     @$(ECHO) ' depend      Generates an optional Makefile.dependencies file for every level'
  217.     @$(ECHO) '             of the project to reflect the complete dependency graph'
  218.     @$(ECHO) '             (including headers).'
  219.     @$(ECHO) 
  220.     @$(ECHO) ' install     Builds (if needed) and copies <ProjectName> into the'
  221.     @$(ECHO) '             installation directory, setting permissions and owners as'
  222.     @$(ECHO) '             appropriate.'
  223.     @$(ECHO) 
  224.     @$(ECHO) ' installsrc  Installs the source files for the project into the directory'
  225.     @$(ECHO) '             specified in the SRCROOT variable in a command-line argument.'
  226.     @$(ECHO) '             Note: the target directory will be removed and recreated.'
  227.     @$(ECHO)        
  228.     @$(ECHO) ' installhdrs Installs the source files for the project.'
  229.     @$(ECHO) 
  230.     @$(ECHO) ' clean       Removes all files in the project derived from previous builds.'
  231.     @$(ECHO)  
  232.     @$(ECHO) ' help        Lists these targets with their descriptions.'
  233.     @$(ECHO) 
  234.     @$(ECHO) 'For more details, see the comments in /NextDeveloper/Makefiles/app/*.make.'
  235.  
  236.